﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Entidades;
using System.ServiceModel;

namespace ServicioEvaluacion
{
    public class ExamenesPreguntas: IExamenesPreguntas
    {
        #region Agregar Examen Pregunta

        public bool Agregar(ExamenPregunta nuevoExamenPregunta)
        {
            bool resultado = false;

            try
            {
                LogicaDeNegocios.ExamenesPreguntas ep = new LogicaDeNegocios.ExamenesPreguntas();
                resultado = ep.Agregar(nuevoExamenPregunta);

            }
            catch (Exception ex)
            {
                resultado = false;
            }

            return resultado;
        }

        #endregion

        #region Modificar Examen Pregunta

        public bool Modificar(ExamenPregunta examenPreguntaAModificar)
        {
            bool resultado = false;

            try
            {
                LogicaDeNegocios.ExamenesPreguntas ep = new LogicaDeNegocios.ExamenesPreguntas();
                resultado = ep.Modificar(examenPreguntaAModificar);                
            }
            catch (Exception ex)
            {
                resultado = false;
            }

            return resultado;
        }
        
        #endregion

        #region Eliminar Examen Pregunta

        public bool Eliminar(ExamenPregunta examenPreguntaAEliminar)
        {
            bool resultado = false;

            try
            {
                LogicaDeNegocios.ExamenesPreguntas ep = new LogicaDeNegocios.ExamenesPreguntas();
                resultado = ep.Eliminar(examenPreguntaAEliminar);
                
            }
            catch (Exception ex)
            {
                resultado = false;
            }

            return resultado;
        }
        
        #endregion

        #region Listar

        public List<ExamenPregunta> Listar(string examenCodigo = "", string preguntaExamenClave = "", short preguntaHabilidadId = 0, short preguntaId = 0)
        {
            List<ExamenPregunta> resultado = null;

            try
            {
                LogicaDeNegocios.ExamenesPreguntas ep = new LogicaDeNegocios.ExamenesPreguntas();
                resultado = ep.Listar(examenCodigo, preguntaExamenClave, preguntaHabilidadId, preguntaId);
            }
            catch (Exception ex)
            {
                resultado = null;
            }

            return resultado;
        }
        
        #endregion

        #region Registra pregunta aleatoria enviada al usuario

        public bool RegistrarPreguntaExamen(string codigoExamen, PreguntaAleatoria pregunta, DateTime fechaHoraInicio)
        {
            bool resultado = false;

            try
            {
                LogicaDeNegocios.ExamenesPreguntas ep = new LogicaDeNegocios.ExamenesPreguntas();
                resultado = ep.RegistrarPreguntaExamen(codigoExamen, pregunta, fechaHoraInicio);                
            }
            catch (Exception)
            {
                resultado = false;
            }

            return resultado;
        }
        
        #endregion
    }
}
